    $NG.AllReady(function (page, { useAction, useValuesChange, useUpdateRows, useUpdateRow, useDataIndexChange, useClick }) {
        const mstform = $NG.getCmpApi("p_form_risk_list");
        const list = $NG.getCmpApi('grid');
        const user = $NG.getUser();
            // 解析参数
        
            //过滤列表
            // 获取全部列表数据
        
            if(page.oType=='view'){

            } else if(page.oType=='add'){
                
            }


        ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
        const param = parseUrlParams(location.href)
        if (page.oType == 'add'&&param.AppTitle.includes("投诉")) {
        mstform.getItem("u_info_source").setValue({
            value: '8570000000000008',
            label: '投诉'
        });
        // $NG.updateState((updater)=>{
        //     updater.data.p_form_risk_list.setProps({
        //         u_info_source:{
        //             label:'投诉',
        //             value:'8570000000000008'
        //         }
        //     })
        // })
        }
        useValuesChange(({ args }) => {
    
        mstform.getItem("u_put_dt").setValue(daysBetweenDates(mstform.getItem("u_put_dt").getItem()))
        }, "p_form_risk_list.u_put_dt")
        function daysBetweenDates(dateStr) {
        // 将传入的日期字符串转换为 Date 对象
        const inputDate = new Date(dateStr);
        // 获取当前日期
        const currentDate = new Date();
    
        // 将日期对象转换为时间戳（以毫秒为单位）
        const inputTime = inputDate.getTime();
        const currentTime = currentDate.getTime();
    
        // 计算两个日期之间的时间差（以毫秒为单位）
        const timeDifference = Math.abs(inputTime - currentTime);
    
        // 将时间差转换为天数
        const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
        const daysDifference = Math.floor(timeDifference / oneDay);
    
        return daysDifference;
        }
        if (mstform) {
    
        console.log("找到表单");
        //   mstform.setHidden("bill_dt", true);
        $NG.updateUI((updater) => {
            updater.fieldSetForm.p_form_risk_list.bill_dt.setProps({
                hidden: true
            })
        })
    function uInvolveGys(params) {
        if (mstform.getItem("u_involve_gys").getValue() == 0||!mstform.getItem("u_involve_gys").getValue()) {
        $NG.updateUI((updater) => {
            console.log(updater);
    
            const fields = ["phid_supply_ent"];
            fields.forEach((field) => {
            updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                hidden: true, //隐藏
                // required: true, //必输
                // disabled: true, //只读
            });
            });
        });
        } else {
        $NG.updateUI((updater) => {
            console.log(updater);
    
            const fields = ["phid_supply_ent"];
            fields.forEach((field) => {
            updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                hidden: false, //隐藏
                required: true
            });
            });
        });
        }
    }
        useValuesChange(({ args }) => {
            uInvolveGys()
        }, "p_form_risk_list.u_involve_gys")
        uInvolveGys();
        function uType(params) {
            if (mstform.getItem("u_type").getValue() == 1 || !mstform.getItem("u_type").getValue()) {
            $NG.updateUI((updater) => {
                const fields = ["u_problem_degree"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: true, //隐藏
                    // required: true, //必输
                    // disabled: true, //只读
                });
                });
            });
            $NG.updateUI((updater) => {
                const fields = ["u_risk_problem_cla", "u_risk_grad"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: false, //隐藏
                    required: true, //必输
                    // disabled: true, //只读
                });
                });
            });
            } else if (mstform.getItem("u_type").getValue() == 2) {
            $NG.updateUI((updater) => {
                const fields = ["u_problem_degree"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: false, //隐藏
                    required: true, //必输
                    // disabled: true, //只读
                });
                });
            });
            $NG.updateUI((updater) => {
                const fields = ["u_risk_problem_cla", "u_risk_grad"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: true, //隐藏
                    // required: true, //必输
                    // disabled: true, //只读
                });
                });
            });
            }
        }
        uType()
        useValuesChange(({ args }) => {
            uType()
        }, "p_form_risk_list.u_type")
        function uIfYfqs(params) {
            if (mstform.getItem("u_if_yfqs").getValue() == 0 || !mstform.getItem("u_if_yfqs").getValue()) {
            $NG.updateUI((updater) => {
                console.log(updater);
    
                const fields = ["u_product_zu", "u_product_category", "u_version"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: true, //隐藏
                    // required: true, //必输
                    // disabled: true, //只读
                });
                });
            });
            } else {
            $NG.updateUI((updater) => {
                console.log(updater);
    
                const fields = ["u_product_zu", "u_product_category", "u_version"];
                fields.forEach((field) => {
                updater.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup1[field].setProps({
                    hidden: false, //隐藏
                    required: true,
                });
                });
            });
            }
            hiddenform()
        }
        useValuesChange(({ args }) => {
            uIfYfqs()
        }, "p_form_risk_list.u_if_yfqs")
        uIfYfqs()
        hiddenform()
        function hiddenform() {
            if (mstform.getItem("u_if_yfqs").getValue() == '0') {
            $NG.updateUI((res) => {
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup5.setProps({ hidden: true })
            })
            $NG.updateUI((res) => {
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup4.setProps({ hidden: true })
            })
            } else {
            $NG.updateUI((res) => {
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup5.setProps({ hidden: false })
            })
            $NG.updateUI((res) => {
                res.fieldSetForm.p_form_risk_list.PCFieldSetPanelGroup4.setProps({ hidden: false })
            })
            }
        }
        if (page.oType == "add" || page.oType == "edit" || page.oType == "copy") {
            // 获取初始值
            let cache = mstform.getItem("phid_pc").getValue();
            // 设置定时器
            const timer = setInterval(function () {
            const phid_pc = mstform.getItem("phid_pc").getValue();
            if (phid_pc !== undefined && phid_pc !== cache) {
                // 后续处理表体数据逻辑
                getPtInfoByPhid();
                cache = phid_pc;
            }
            }, 1000);
        }
        useValuesChange(({ args }) => {
            console.log("项目监听", args);
    
            // getProjectInfo();
            // cntMFilter()
            getPtInfoByPhid();
        }, "p_form_risk_list.phid_pc");
        } else {
        console.log("未找到表单");
        }
    
        if ((page.oType == "add")) {
        const data = $NG.getPageState().data.p_form_risk_list.phid_schemeid;
        let str = null;
        if (data == "8570000000000165") {
            str = {
            value: "8570000000000003",
            label: "现场回访",
            };
        } else if (data == "8570000000000167") {
            str = {
            value: "8570000000000002",
            label: "电话回访",
            };
        }
        $NG.updateState((updater) => {
            updater.data.p_form_risk_list.setProps({
            u_info_source: { ...str },
            });
        });
        // console.log(data.data.p_form_risk_list.phid_schemeid);
        }
    
        $NG.updateState((updater) => {
        updater.data.p_form_risk_list.setProps({
            u_propose_dt: formatDate(new Date(), "yyyy-mm-dd"),
            u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
            u_sb_per: {
            label: user.userName,
            value: user.userID,
            },
            phid_dept: {
            label: user.topOrg.oName,
            value: user.topOrg.phId,
            },
        });
        });
        useValuesChange(({ args }) => {
            console.log(args[0].u_info_source?.origin.phid);
        }, "p_form_risk_list.u_info_source");
        ////////////////////////////////////////////////////////////--字段变化逻辑--////////////////////////////////////////////////////////////
    
        if (page.oType == "add" || page.oType == "edit" || page.oType == "copy") {
        // 项目监听
    
        //单据引用后有值的字段
        let cache = mstform.getItem("phid_pc").getValue();
        const timer = setInterval(function () {
            try{
                const mstform = $NG.getCmpApi("p_form_risk_list");
            const phid_pc = mstform.getItem("phid_pc").getValue();
            if (phid_pc !== undefined && phid_pc !== cache) {
            //todo...后续处理表体数据逻辑
            // getProjectInfo();
            cache = phid_pc;
            }
            }catch(e){}
        }, 1000);
        }
        let gxrInfo = null;
        const timerG = setInterval(function () {
            try {
                const mstform = $NG.getCmpApi("p_form_risk_list");
                const gxr = mstform.getItem("u_customer_name").getValue();
                if (gxr !== undefined && gxr !== gxrInfo) {
                    //todo...后续处理表体数据逻辑
                    getGxrInfo();
                    gxrInfo = gxr;
                }
            } catch (e) {}
        }, 1000);
        // // 监听干系人
        // useValuesChange(({ args }) => {
        //   console.log("干系人监听", args);
        //   getGxrInfo();
        // }, "p_form_risk_list.u_customer_name");
    
        //监听风险问题识别日期
        useValuesChange(({ args }) => {
        console.log(`监听风险问题识别日期`, args);
        if (daysBetween(args[0].u_put_dt, formatDate(new Date(), "yyyy-mm-dd"), true) < 0) {
            $NG.alert("时间不得大于当前日期！");
            $NG.updateState((updater) => {
            updater.data.p_form_risk_list.setProps({
                u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
                u_sustain_time: 0,
            });
            });
        }
    
        if (args[0].u_put_dt) {
            $NG.updateState((updater) => {
            updater.data.p_form_risk_list.setProps({
                u_sustain_time: daysBetween(mstform.getItem("u_put_dt").getValue(), formatDate(new Date(), "yyyy-mm-dd")),
            });
            });
        }
        }, "p_form_risk_list.u_put_dt");
        console.log("用户信息", user);
    
        ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////--mstformFunction--////////////////////////////////////////////////////////////
        u_info_sourceFilter()
        function u_info_sourceFilter(){
            if(page.oType == 'add'||page.oType == 'edit'){
            if(!param.AppTitle.includes("投诉")){
                $NG.updateUI((updater) =>{
                    updater.fieldSetForm.p_form_risk_list.u_info_source.setProps({
                        clientSqlFilter: "u_name not in ('投诉')",
                    })
                });
            } else {
                $NG.updateUI((updater) =>{
                    updater.fieldSetForm.p_form_risk_list.u_info_source.setProps({
                        clientSqlFilter: "u_name in ('投诉')",
                    })
                }); 
            }
        }
        }
        function getPtInfoByPhid() {
        if (mstform.getItem("phid_pc").getValue()) {
            $NG.execServer("getPtInfoByPhid", { phid: mstform.getItem("phid_pc").getValue() }, function (res) {
            const datas = JSON.parse(res.data)[0].extendObjects;
            console.log(datas);
            const date = new Date().toISOString().split('T')[0];
            mstform.getItem("u_topic").setValue(`${date}${datas.pc_name}(${datas.pc_no})风险问题清单`)
            $NG.updateState((updater) => {
                updater.data.p_form_risk_list.setProps({
                //项目编码
                u_pc_no: datas.pc_no,
                // 项目经理
                phid_emp: {
                    label: datas.project_manager_name,
                    value: datas.project_manager_phid,
                },
                phid_org: {
                    //事业部or组织
                    value: datas.org_phid,
                    label: datas.org_name,
                },
                u_regional_center: {
                    //区域中心
                    value: datas.regional_center_phid,
                    label: datas.regional_center_name,
                },
                //产品线
                u_product_line: {
                    value: datas.midwife_phid,
                    label: datas.midwife_name,
                },
                //行业线
                u_industry_line: {
                    value: datas.hyx_phid,
                    label: datas.hyx_name,
                },
                // //计划开工日期
                // start_date: datas.start_date,
                // //计划完工日期
                // end_date: datas.end_date,
                // //售前顾问
                // u_sqgw: {
                //   value: datas.user_sqgw_phid,
                //   label: datas.user_sqgw_name,
                // },
                // //项目经理
                // u_project_manager: {
                //   value: datas.project_manager_phid,
                //   label: datas.project_manager_name,
                // },
                // //事业部
                // u_division: {
                //   value: datas.division_phid,
                //   label: datas.division_name,
                // },
                // //组织
                // phid_org_phid: {
                //   value: datas.phid_org_phid,
                //   label: datas.phid_org_name,
                // },
                // //区域中心
                // u_regional_center: {
                //   value: datas.regional_center_phid,
                //   label: datas.regional_center_name,
                // },
    
                // //客户名称
                // customer: {
                //   value: datas.customer_id,
                //   label: datas.customer_name,
                // },
                // //部门
                // u_dept: {
                //   value: datas.dept_phid,
                //   label: datas.dept_name,
                // },
                // //项目类型
                // u_pc_type: {
                //   value: datas.type_phid,
                //   label: datas.type_name,
                // },
                // //项目预算组织编码
                // budget_org_code: datas.budget_org_no,
                // //项目预算组织
                // budget_org_phid: {
                //   value: datas.budget_org_phid,
                //   label: datas.budget_org_name,
                // },
                });
            });
            });
        }
        }
        function getProjectInfo(isReturn = false, phid = mstform.getItem("phid_pc").getValue(), fun) {
        if (!mstform.getItem("phid_pc").getValue()) return;
        try {
            setTimeout(() => {
            $NG.execServer("getPtInfoByPhid", { phid: phid }, (res) => {
                const _data = JSON.parse(res.data)[0].extendObjects;
                console.log(`获取项目信息`, _data);
                if (isReturn) {
                fun(_data);
                } else {
                $NG.updateState((updater) => {
                    updater.data.p_form_risk_list.setProps({
                    u_pc_no: _data.pc_no, //项目编码
                    // 项目经理
                    phid_emp: {
                        label: _data.project_manager_name,
                        value: _data.project_manager_phid,
                    },
                    phid_org: {
                        //事业部or组织
                        value: _data.org_phid,
                        label: _data.org_name,
                    },
                    u_regional_center: {
                        //区域中心
                        value: _data.regional_center_phid,
                        label: _data.regional_center_name,
                    },
                    });
                });
                }
            });
            }, 100);
        } catch (err) {
            $NG.alert("获取项目信息发生失败请检查~");
        }
        }
    
        // 干系人信息查询
        function getGxrInfo() {
        $NG.execServer("getGxrInfo", { phid: mstform.getItem("u_customer_name").getValue() }, function (res) {
            console.log("干系人信息查询", res);
            const _data = JSON.parse(res.data)[0].extendObjects;
            console.log("信息", _data);
            $NG.updateState((updater) => {
            updater.data.p_form_risk_list.setProps({
                // JIRA号
                u_jira_no: "",
                // 客户层级
                u_custom_level: _data.u_level,
                // 客户职务
                u_customer_position: _data.u_position,
                // 客户单位名称
                u_customer_unit: _data.u_customer_name,
            });
            });
        });
        }
    },
    function (listPage, { useAction }) {
        //列表页面逻辑
        const list = $NG.getCmpApi('grid');
        const user = $NG.getUser();
        listFilter();
        let data = null;
        function listFilter() {
            setInterval(() => {
                // 判断地址是否发生变化
                if (data !== list.getRows()) {
                    console.log(`变化`);
                    const param = parseUrlParams(location.href)
                    const listData = list.getRows();
                    console.log(`获取列表`, listData);
                    const arr = listData.reduce((value, item) => {
                        if (param.AppTitle !== "投诉上报") {
                            if (item.u_info_source != "8570000000000008") {
                                value.push(item);
                            }
                        } else {
                            if (item.u_info_source == "8570000000000008") {
                                value.push(item);
                            }
                        }
                        return value;
                    }, []);
                    list.clearRows().then(() => {
                        list.addRows([...arr]).then(()=>{
                            data = list.getRows();
                        });
                        console.log(`更新`);
                    });
                }
            }, 10);
        }
    });
    // 格式化日期
    function formatDate(dateStr, outputFormat) {
        const date = new Date(dateStr);
    
        if (isNaN(date)) {
        return "无效的日期字符串";
        }
    
        const year = date.getFullYear();
        const month = String(date.getMonth() + 1).padStart(2, "0");
        const day = String(date.getDate()).padStart(2, "0");
        const hours = String(date.getHours()).padStart(2, "0");
        const minutes = String(date.getMinutes()).padStart(2, "0");
    
        let formattedDate;
    
        switch (outputFormat) {
        case "yyyy-mm-dd":
            formattedDate = `${year}-${month}-${day}`;
            break;
        case "yyyy-mm-dd HH:mm":
            formattedDate = `${year}-${month}-${day} ${hours}:${minutes}`;
            break;
        // 可以根据需要继续添加其他格式的处理逻辑
        default:
            formattedDate = "不支持的输出格式";
        }
    
        return formattedDate;
    }
    // 计算2个日期之间得天数
    function daysBetween(date1, date2, abs = false) {
        // 将日期字符串转换为 Date 对象
        const d1 = new Date(date1);
        const d2 = new Date(date2);
    
        // 检查输入是否是有效日期
        if (isNaN(d1) || isNaN(d2)) {
        throw new Error("Invalid date format. Use 'yyyy-mm-dd'.");
        }
    
        // 计算时间差（毫秒）
        const timeDiff = Math.abs(d2 - d1);
        if (abs) {
        if (d2 - d1 >= 0) {
            return 1;
        } else {
            return -1;
        }
        }
    
        // 将毫秒转换为天数
        const dayDiff = Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
    
        return dayDiff;
    }
    function parseUrlParams(url) {
        const paramsObj = {};
        const queryString = url.split('?')[1];
        const paramPairs = queryString.split('&');
        paramPairs.forEach((paramPair) => {
            const [key, value] = paramPair.split('=');
            const decodedValue = decodeURIComponent(value);
            paramsObj[key] = decodedValue;
        });
        return paramsObj;
    }